package demo04;

import java.util.function.Predicate;

/*
 *  public interface Predicate<T>：判断型接口
 *  default Predicate<T> negate()：Predicate的默认方法，用于将Predicate对象判断结果取反
 *  negate()方法代表取反，Predicate对象如果返回true，取反后就返回false；如果返回false，取反后就返回true
 */
public class Demo04PredicateNegate {
    public static void main(String[] args) {
        System.out.println("字符串长度是否小于5：" +
                // 原本Lambda返回判断结果为false，由于predicate对象先调用了negate()方法，因此结果取反，返回true
                chickLength("小飞棍来咯", string -> string.length() > 5 ? true : false)); // true
    }

    public static boolean chickLength(String string, Predicate<String> predicate) {
        return predicate.negate().test(string); // 使用negate()方法将结果取反
    }
}
